package com.cv.platform.service.video;

import com.cv.platform.dal.es.index.video.CvVideoEntity;

import java.util.List;

/**
 * 视频点赞业务层接口
 *
 * @author Charles_XDXD
 */
public interface CvVideoLikeService {

    /**
     * 根据用户编号获取所有的点赞视频数据
     *
     * @param userId 用户编号
     * @return 视频数据
     */
    List<CvVideoEntity> getAllVideoLikeByUserId(Long userId);

    /**
     * 获取视频点赞数量
     *
     * @param videoId 视频编号
     * @return 点赞数量
     */
    Integer getVideoLikeCount(Long videoId);

    /**
     * 根据视频编号和用户编号获取点赞状态
     *
     * @param videoId 视频编号
     * @return 点赞状态
     */
    Boolean getVideoLikeStatus(Long videoId);

    /**
     * 保存点赞数据
     *
     * @param videoId 视频编号
     */
    void saveVideoLike(Long videoId);

    /**
     * 取消点赞数据
     *
     * @param videoId 视频编号
     */
    void cancelVideoLike(Long videoId);

    /**
     * 同步更新点赞数据至数据库
     */
    void syncLikeData();

}
